
        <html>
			<head>
			     <title>Fireeye Mandiant 2014 安全报告 Part1 - insight-labs</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/5042">http://drops.wooyun.org/papers/5042</a></h1>
				
      <p>
        <h1>0x00 case study 1</h1>

<hr />

<p>美国最大的实体零售连锁店是如何在3个月内被窃取几百万笔信用卡资料的</p>

<p>[page 8]</p>

<p>这次攻击和2014年的多次针对零售业的攻击类似，都是通过利用合法的账号远程登录受害方的系统，内网渗透之后在POS机系统上装盗取信用卡的恶意软件.直到被美国政府部门通知后他们才发现自己已经被攻击了。</p>

<h1>0x01 切入点</h1>

<hr />

<p>攻击者首先使用合法账号登录了零售商的虚拟应用服务器。这个虚拟服务器给了攻击者一个权限有限的虚拟化桌面环境(目测是Citrix,传说中的透明计算吗?)。我们没有发现失败登录的记录，说明攻击者在攻击之前就已经获得合法账号(当前证据没有显示攻击者是如何获取到账号的，不过很可能是社工，钓鱼等手段。)</p>

<!--more-->

<p>之后黑客利用了虚拟桌面环境上的一个配置错误，提权得到系统权限的shell。之后通过FTP下载了一个密码导出工具，获取了本地管理员的密码。 这个本地管理员密码和这家公司其他系统的密码完全一样。这一切只用了几分钟就完成了。</p>

<p>在初始的入侵过程中，攻击者用了功能强大的开源渗透测试工具Metasploit Framework(MSF)在内网环境中游走。</p>

<p>利用MSF的psexec_command模块，攻击者通过之前获取到的管理员密码在内网系统上执行了很多命令，这个模块通过添加Windows服务来执行命令，所以在系统日志中留下了记录。</p>

<p>在渗透过程中，攻击者瞄准了企业网络的域控服务器。这个域控服务器的本地管理员密码和之前攻击者获得的虚拟桌面服务器的管理员密码一样……</p>

<p>攻击者之后通过MSF的ntdsgrab模块获取了域控的NTDS数据库和注册表hive数据。</p>

<p>域控的NTDS储存了AD里的用户名和密码hash。在破解了域管理员的密码hash后，攻击者通过他们在域中基本畅通无阻了。</p>

<p>此时，攻击者从MSF换到了更传统的后期渗透工具，比如微软的psexec，RDP等常用的管理工具。攻击者之后使用域管理员账号通过RDP登录到了其他系统。</p>

<p>psexec_command模块是如何工作的:</p>

<p>MSF的psexec_command模块把要执行的命令写入到一个批处理文件，执行后的结果会写入到一个文本文件。这两个文件名都是随机的16位字符串。之后该模块通过添加一个新的随机命名的windows服务来执行这个批处理程序。下面是这个服务被添加执行之后在windows系统日志中出现的内容:</p>

<pre><code>A service was installed in the system.
Service Name: MRSWxwQmQxFGumEFsW
Service File Name: %COMSPEC% /C echo dir ^&gt;
%SYSTEMDRIVE%\WINDOWS\Temp\TthwsVKvUhydrsNB.txt &gt; \
WINDOWS\Temp\RbhRmgALAHcdyWXG.bat &amp; %COMSPEC% /C
start %COMSPEC% /C \WINDOWS\Temp\RbhRmgALAHcdyWXG.bat
Service Type: user mode service
Service Start Type: demand start
</code></pre>

<h1>0x02 后门</h1>

<hr />

<p>为了持久的控制已经拿下的系统，攻击者在多个机器中植入了后门，后门是针对win XP系统的驱动型木马。</p>

<p>植入的木马使用了很高级的免杀技术，和很多高级的常用恶意软件类似。植入的恶意驱动首先在内存中释放代码，然后生成一个新的系统线程。 原始的驱动加载后之后会提示系统加载错误，因为释放出来的代码是用另一个进程执行的，虽然windows并不认为这个驱动已经被加载了，但是恶意代码还是成功执行了。 这个技巧经常用来防止对恶意软件的逆向并且保护了后门的一些功能。</p>

<p>这个后门通过释放出的shellcode来在user space中实现它的功能(从内核加载后注入用户级进程). 这个shellcode通过向一个写在代码里的IP地址发送HTTP POST来获取一个XOR编码后嵌在HTML里的shellcode。</p>

<p>这个技巧让这个后门变的很万能，因为想增加新功能的话只要在服务端加个新的shellcode就行了。虽然这种通过shellcode实现的下载马已经出现很久了，但是通过和驱动级后门的结合说明这个后门很先进。</p>

<p><img src="http://static.wooyun.org/drops/20150306/2015030609515153925figure2.jpg" alt="enter image description here" /></p>

<p>Figure 2 后门和C2服务器的通信方式</p>

<p>这个零售店所有的结账系统都是连接到域服务器的，也就是说任何人如果控制了域控就可以控制所有的结账机器。</p>

<p>在拿下企业域环境之后，黑客开始渗透零售系统的内网。</p>

<p>零售系统的内网环境是这样的:</p>

<p>零售域和企业域是双向信任的。 每个零售店的结账平台运行的是WinXP 零售平台的XP系统加入了零售域</p>

<p>这样的内网环境在零售行业中很常见，这给了攻击者两个优势。</p>

<p>首先，因为双向信任的关系，只要拿了一个域的管理员权限就拥有了另一个域的权限。</p>

<p>其次，零售域是企业域的子域，这要求企业域和子域的域控必须打开特地的端口。这些开放的端口绕过了零售域的防火墙。攻击者使用这些开放的端口进入了零售域的域控，然后通过零售域的域控作为跳板进入零售域的其他机器。</p>

<p>攻击者把一个windows脚本用域控推送到所有结账平台，之后脚本下载了专门用来收集POS机刷卡记录的恶意软件。</p>

<p>之后攻击者通过Windows计划任务执行了恶意软件。这个收集刷卡信息的软件会收集信用卡的磁道数据，包括信用卡号，过期时间等信息。这些信息在刷卡的时候会存在POS应用程序的内存里，攻击者会把这些数据卖给做假卡的人。</p>

<p>这个攻击POS机的恶意软件使用了OSQL，一个预装在所有结账平台上的软件，用来把收集到的信用卡信息写入一个MSSQL的临时数据库 tempdb,tempdb中的数据在MSSQL重启的时候会清空。每天攻击者都会把tempdb中的数据导出成文本文件，然后复制到域控服务器上。</p>

<p>之后攻击者把收集到的数据打包然后发送到零售内网的一台有外网连接的工作站，之后传到自己控制的FTP服务器上</p>

<p><img src="http://static.wooyun.org/drops/20150306/2015030609535656952figure3.jpg" alt="enter image description here" /></p>

<p>Figure 3</p>

<pre><code>1. 攻击者通过合法账号远程登录受害者的虚拟化应用服务器。 
2.攻击者从虚拟环境中逃出，然后逐渐进入企业内网环境。从那里开始收集企业内网环境的账号。 
3.攻击者通过零售域的域控服务器作为跳板进入了POS机的主机。之后在上面通过脚本下载执行了收集信用卡资料的恶意软件。 
4. 攻击者把收集到的信用卡资料传输到域控，然后再到有互联网连接的工作站，之后通过FTP传到了自己控制的FTP服务器
</code></pre>

<h1>0x03 意见与建议</h1>

<hr />

<p>面对这样的攻击，应该怎么防御呢? 你没法阻止每次进攻，也没法保证自己无法被黑，但是下面的一些基本规则可以阻止攻击者在你的内网畅通无阻的行动。 通过使用正确的工具和高度警惕的安全团队，你可以减缓攻击者的速度，给你足够的时间在最坏的情况发生前，去发现，分析和应对攻击。</p>

<h2>1.远程登录安全</h2>

<hr />

<p>分析和检查员工，临时工还有供货商等如何远程连接到你的网络环境。确保远程连接一切可控，比如远程连接方式，可以远程连接的用户，密码要求等等。全部可以远程登录的账号都应该使用双因素认证。 确保积极监控远程登录日志，尽早发现任何可疑活动。</p>

<h2>2. 确保支付卡PCI环境的安全</h2>

<hr />

<p>按照Payment Card Industry(PCI)和相关的安全认证PCIDSS的标准来规划你的内网环境。一切进入到PCI环境的登录和连接都要通过一个安全的堡垒机进行。登录堡垒机需要使用双因素认证。如果可能的话，把企业域环境和零售域环境分开，尽量减少和零售域以外的连接。另外，最好在零售域使用白名单，只有列表内的机器和地址才能被零售域内的系统访问。</p>

<h2>3. 在核心系统上使用应用程序白名单</h2>

<hr />

<p>在所有核心系统上都应该通过应用程序白名单的方式，减少恶意软件执行的机会。核心系统包括任何能接触到信用卡资料的系统，堡垒机服务器，域控服务器等等。</p>

<h2>4.管理好高权限账号</h2>

<hr />

<p>攻击者会瞄准高权限账号比如本地管理员，域管理员还有服务账号等等。减少高权限账号的数量，并且确保每个本地管理员账号的密码不同，最好是随机的。 使用密码管理工具来管理账号，最好每次使用这些账号后自动重新生成新密码。这些技术可以更好的控制高权限账号的使用。</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          